package com.hqd.utils.pack.bean;

import lombok.Builder;
import lombok.Data;
import org.apache.tools.ant.util.JavaEnvUtils;
import org.eclipse.jdt.core.JDTCompilerAdapter;

@Builder(toBuilder = true)
@Data
public class ProjectInfo {
    /**
     * 项目路径
     */
    private String basePath;
    /**
     * 源码路径（基于基础路径）
     */
    @Builder.Default
    private String srcPath = "src";
    /**
     * 测试代码路径（基于基础路径）
     */
    @Builder.Default
    private String testSrcPath = "src/test";
    /**
     * 测试代码路径（基于基础路径）
     */
    @Builder.Default
    private String testResourcePath = "src/test/resources";
    /**
     * 资源路径(基于基础路径)
     */
    @Builder.Default
    private String resourcePath = "src/resources";
    /**
     * 是否跳过测试
     */
    @Builder.Default
    private boolean skipTest = true;
    /**
     * 目标jar包路径
     */
    private String jarPath;
    /**
     * 依赖路径
     */
    private String libPath;
    /**
     * 输出路径
     */
    private String outPath;
    /**
     * 编码
     */
    @Builder.Default
    private String encoding = "utf-8";
    /**
     * jdk版本
     */
    @Builder.Default
    private String jdkVersion = JavaEnvUtils.JAVA_1_8;
    /**
     * debug级别
     */
    @Builder.Default
    private String debugLevel = "lines,source,vars";
    /**
     * 是否开启debug
     */
    @Builder.Default
    private boolean debug = true;
    /**
     * 忽略警告
     */
    @Builder.Default
    private boolean noWarn = true;
    /**
     * 编译器
     */
    @Builder.Default
    private Class<?> compilerClass = JDTCompilerAdapter.class;

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("项目信息：").append(System.lineSeparator());
        sb.append("\t").append("项目路径:").append(basePath).append(System.lineSeparator());
        sb.append("\t").append("源码路径:").append(srcPath).append(System.lineSeparator());
        sb.append("\t").append("资源路径:").append(resourcePath).append(System.lineSeparator());
        sb.append("\t").append("测试代码路径:").append(testSrcPath).append(System.lineSeparator());
        sb.append("\t").append("测试资源路径:").append(testResourcePath).append(System.lineSeparator());
        sb.append("\t").append("目标jar包:").append(jarPath).append(System.lineSeparator());
        sb.append("\t").append("依赖路径:").append(libPath).append(System.lineSeparator());
        sb.append("\t").append("输出路径:").append(outPath).append(System.lineSeparator());
        sb.append("\t").append("编码:").append(encoding).append(System.lineSeparator());
        sb.append("\t").append("jdk版本:").append(jdkVersion).append(System.lineSeparator());
        sb.append("\t").append("debug级别:").append(debugLevel).append(System.lineSeparator());
        sb.append("\t").append("是否开启debug:").append(debug).append(System.lineSeparator());
        sb.append("\t").append("是否忽略警告:").append(noWarn).append(System.lineSeparator());
        sb.append("\t").append("编译器:").append(compilerClass).append(System.lineSeparator());
        return sb.toString();
    }
}
